EXE/OM in Rust Первое решение, или точнее сказать первый pivot в выборе технологии — решено использовать в качестве языка имплементации Rust вместо Erlang, для сертифицированных сред — это лучше, достаточно иметь сертифицированный LLVM, думаю эту часть на себя скоро возьмет индустрия. Судя по тому, как Rust упаковывает в битики деревья и рекорды, проектировали его грамотные люди. Пускай вы не найдете формальной спецификации на язык, кроме The Rust Reference и двух книжек, но вы можете писать enum с параметрами (привет GADT и индуктивные типы), и вменяемая работа с рекордами и их интерфейсами. Синтаксис вообще как я люблю, большинство ключевых слов трехсимвольные (use, mut, pub, mod, ...) — поэтому помещается в 4-х спейсовую табуляцию, вообщем круче руби и эликсир даже. Есть типизированные макросы на таком AST: item: an item block: a block stmt: a statement pat: a pattern expr: an expression ty: a type ident: an identifier path: a path tt: either side of the => in macro rules meta: the contents of an attribute Я поискал по гитхабу, нашел порты scalaz и даже категорные библиотеки. 3 штуки фьючерсов и пачку сетевых стеков. Сейчас (1.12) все юзают mio на базе net2. Хотя я находил нормальные NOBLOCK сервера через libc, нафига mio/net2 еще у меня под вопросом. Несколько FRP библиотек. AST OM на Rust: В ближайжее время, когда попробую Rust на вкус, напишу про одну неизвестную кодировку, которая круче чем париготовская и скотта даже. И заодно потестирую как LLVM сгенеренний растом фолдит индуктивный лист в этой кодировке. Там конечно тоже нужны self-типы (другая, более слабая форма Fixpoint), но кодировка интересная, так как обладает всеми параметрами продакшин кодировок: термы не растут экспоненциально как в париготе, тейл списка вычисляется за одну операцию. В Visual Studio Code все прикольно и работает вместе с LLDB дебагером. Воообщем ждите новостей об EXE/OM на Rust. -------------------------- [1]. http://aturon.github.io/blog/2016/09/07/futures-design/ [2]. https://lise-henry.github.io/articles/optimising_strings.html [3]. https://github.com/AndyShiue/pts [4]. https://github.com/freebroccolo?language=rust&tab=repositories [5]. http://always-learning.timmcnamara.nz/2016/10/15/borrow-checker-escape-hatches/